home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / nss / ckfw.h < prev    next >
C/C++ Source or Header  |  2006-04-20  |  29KB  |  1,864 lines

  1. /* ***** BEGIN LICENSE BLOCK *****
  2.  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  3.  *
  4.  * The contents of this file are subject to the Mozilla Public License Version
  5.  * 1.1 (the "License"); you may not use this file except in compliance with
  6.  * the License. You may obtain a copy of the License at
  7.  * http://www.mozilla.org/MPL/
  8.  *
  9.  * Software distributed under the License is distributed on an "AS IS" basis,
  10.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  11.  * for the specific language governing rights and limitations under the
  12.  * License.
  13.  *
  14.  * The Original Code is the Netscape security libraries.
  15.  *
  16.  * The Initial Developer of the Original Code is
  17.  * Netscape Communications Corporation.
  18.  * Portions created by the Initial Developer are Copyright (C) 1994-2000
  19.  * the Initial Developer. All Rights Reserved.
  20.  *
  21.  * Contributor(s):
  22.  *
  23.  * Alternatively, the contents of this file may be used under the terms of
  24.  * either the GNU General Public License Version 2 or later (the "GPL"), or
  25.  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  26.  * in which case the provisions of the GPL or the LGPL are applicable instead
  27.  * of those above. If you wish to allow use of your version of this file only
  28.  * under the terms of either the GPL or the LGPL, and not to allow others to
  29.  * use your version of this file under the terms of the MPL, indicate your
  30.  * decision by deleting the provisions above and replace them with the notice
  31.  * and other provisions required by the GPL or the LGPL. If you do not delete
  32.  * the provisions above, a recipient may use your version of this file under
  33.  * the terms of any one of the MPL, the GPL or the LGPL.
  34.  *
  35.  * ***** END LICENSE BLOCK ***** */
  36.  
  37. #ifndef CKFW_H
  38. #define CKFW_H
  39.  
  40. #ifdef DEBUG
  41. static const char CKFW_CVS_ID[] = "@(#) $RCSfile: ckfw.h,v $ $Revision: 1.7 $ $Date: 2005/01/20 02:25:45 $";
  42. #endif /* DEBUG */
  43.  
  44. /*
  45.  * ckfw.h
  46.  *
  47.  * This file prototypes the private calls of the NSS Cryptoki Framework.
  48.  */
  49.  
  50. #ifndef NSSBASET_H
  51. #include "nssbaset.h"
  52. #endif /* NSSBASET_H */
  53.  
  54. #ifndef NSSCKT_H
  55. #include "nssckt.h"
  56. #endif /* NSSCKT_H */
  57.  
  58. #ifndef NSSCKFWT_H
  59. #include "nssckfwt.h"
  60. #endif /* NSSCKFWT_H */
  61.  
  62. #ifndef NSSCKMDT_H
  63. #include "nssckmdt.h"
  64. #endif /* NSSCKMDT_H */
  65.  
  66. /*
  67.  * NSSCKFWInstance
  68.  *
  69.  *  -- create/destroy --
  70.  *  nssCKFWInstance_Create
  71.  *  nssCKFWInstance_Destroy
  72.  *
  73.  *  -- implement public accessors --
  74.  *  nssCKFWInstance_GetMDInstance
  75.  *  nssCKFWInstance_GetArena
  76.  *  nssCKFWInstance_MayCreatePthreads
  77.  *  nssCKFWInstance_CreateMutex
  78.  *  nssCKFWInstance_GetConfigurationData
  79.  *  nssCKFWInstance_GetInitArgs 
  80.  *
  81.  *  -- private accessors --
  82.  *  nssCKFWInstance_CreateSessionHandle
  83.  *  nssCKFWInstance_ResolveSessionHandle
  84.  *  nssCKFWInstance_DestroySessionHandle
  85.  *  nssCKFWInstance_FindSessionHandle
  86.  *  nssCKFWInstance_CreateObjectHandle
  87.  *  nssCKFWInstance_ResolveObjectHandle
  88.  *  nssCKFWInstance_DestroyObjectHandle
  89.  *  nssCKFWInstance_FindObjectHandle
  90.  *
  91.  *  -- module fronts --
  92.  *  nssCKFWInstance_GetNSlots
  93.  *  nssCKFWInstance_GetCryptokiVersion
  94.  *  nssCKFWInstance_GetManufacturerID
  95.  *  nssCKFWInstance_GetFlags
  96.  *  nssCKFWInstance_GetLibraryDescription
  97.  *  nssCKFWInstance_GetLibraryVersion
  98.  *  nssCKFWInstance_GetModuleHandlesSessionObjects
  99.  *  nssCKFWInstance_GetSlots
  100.  *  nssCKFWInstance_WaitForSlotEvent
  101.  *
  102.  *  -- debugging versions only --
  103.  *  nssCKFWInstance_verifyPointer
  104.  */
  105.  
  106. /*
  107.  * nssCKFWInstance_Create
  108.  *
  109.  */
  110. NSS_EXTERN NSSCKFWInstance *
  111. nssCKFWInstance_Create
  112. (
  113.   CK_C_INITIALIZE_ARGS_PTR pInitArgs,
  114.   CryptokiLockingState LockingState,
  115.   NSSCKMDInstance *mdInstance,
  116.   CK_RV *pError
  117. );
  118.  
  119. /*
  120.  * nssCKFWInstance_Destroy
  121.  *
  122.  */
  123. NSS_EXTERN CK_RV
  124. nssCKFWInstance_Destroy
  125. (
  126.   NSSCKFWInstance *fwInstance
  127. );
  128.  
  129. /*
  130.  * nssCKFWInstance_GetMDInstance
  131.  *
  132.  */
  133. NSS_EXTERN NSSCKMDInstance *
  134. nssCKFWInstance_GetMDInstance
  135. (
  136.   NSSCKFWInstance *fwInstance
  137. );
  138.  
  139. /*
  140.  * nssCKFWInstance_GetArena
  141.  *
  142.  */
  143. NSS_EXTERN NSSArena *
  144. nssCKFWInstance_GetArena
  145. (
  146.   NSSCKFWInstance *fwInstance,
  147.   CK_RV *pError
  148. );
  149.  
  150. /*
  151.  * nssCKFWInstance_MayCreatePthreads
  152.  *
  153.  */
  154. NSS_EXTERN CK_BBOOL
  155. nssCKFWInstance_MayCreatePthreads
  156. (
  157.   NSSCKFWInstance *fwInstance
  158. );
  159.  
  160. /*
  161.  * nssCKFWInstance_CreateMutex
  162.  *
  163.  */
  164. NSS_EXTERN NSSCKFWMutex *
  165. nssCKFWInstance_CreateMutex
  166. (
  167.   NSSCKFWInstance *fwInstance,
  168.   NSSArena *arena,
  169.   CK_RV *pError
  170. );
  171.  
  172. /*
  173.  * nssCKFWInstance_GetConfigurationData
  174.  *
  175.  */
  176. NSS_EXTERN NSSUTF8 *
  177. nssCKFWInstance_GetConfigurationData
  178. (
  179.   NSSCKFWInstance *fwInstance
  180. );
  181.  
  182. /*
  183.  * nssCKFWInstance_GetInitArgs
  184.  *
  185.  */
  186. NSS_EXTERN CK_C_INITIALIZE_ARGS_PTR
  187. nssCKFWInstance_GetInitArgs
  188. (
  189.   NSSCKFWInstance *fwInstance
  190. );
  191.  
  192. /*
  193.  * nssCKFWInstance_CreateSessionHandle
  194.  *
  195.  */
  196. NSS_EXTERN CK_SESSION_HANDLE
  197. nssCKFWInstance_CreateSessionHandle
  198. (
  199.   NSSCKFWInstance *fwInstance,
  200.   NSSCKFWSession *fwSession,
  201.   CK_RV *pError
  202. );
  203.  
  204. /*
  205.  * nssCKFWInstance_ResolveSessionHandle
  206.  *
  207.  */
  208. NSS_EXTERN NSSCKFWSession *
  209. nssCKFWInstance_ResolveSessionHandle
  210. (
  211.   NSSCKFWInstance *fwInstance,
  212.   CK_SESSION_HANDLE hSession
  213. );
  214.  
  215. /*
  216.  * nssCKFWInstance_DestroySessionHandle
  217.  *
  218.  */
  219. NSS_EXTERN void
  220. nssCKFWInstance_DestroySessionHandle
  221. (
  222.   NSSCKFWInstance *fwInstance,
  223.   CK_SESSION_HANDLE hSession
  224. );
  225.  
  226. /*
  227.  * nssCKFWInstance_FindSessionHandle
  228.  *
  229.  */
  230. NSS_EXTERN CK_SESSION_HANDLE
  231. nssCKFWInstance_FindSessionHandle
  232. (
  233.   NSSCKFWInstance *fwInstance,
  234.   NSSCKFWSession *fwSession
  235. );
  236.  
  237. /*
  238.  * nssCKFWInstance_CreateObjectHandle
  239.  *
  240.  */
  241. NSS_EXTERN CK_OBJECT_HANDLE
  242. nssCKFWInstance_CreateObjectHandle
  243. (
  244.   NSSCKFWInstance *fwInstance,
  245.   NSSCKFWObject *fwObject,
  246.   CK_RV *pError
  247. );
  248.  
  249. /*
  250.  * nssCKFWInstance_ResolveObjectHandle
  251.  *
  252.  */
  253. NSS_EXTERN NSSCKFWObject *
  254. nssCKFWInstance_ResolveObjectHandle
  255. (
  256.   NSSCKFWInstance *fwInstance,
  257.   CK_OBJECT_HANDLE hObject
  258. );
  259.  
  260. /*
  261.  * nssCKFWInstance_ReassignObjectHandle
  262.  *
  263.  */
  264. NSS_EXTERN CK_RV
  265. nssCKFWInstance_ReassignObjectHandle
  266. (
  267.   NSSCKFWInstance *fwInstance,
  268.   CK_OBJECT_HANDLE hObject,
  269.   NSSCKFWObject *fwObject
  270. );
  271.  
  272. /*
  273.  * nssCKFWInstance_DestroyObjectHandle
  274.  *
  275.  */
  276. NSS_EXTERN void
  277. nssCKFWInstance_DestroyObjectHandle
  278. (
  279.   NSSCKFWInstance *fwInstance,
  280.   CK_OBJECT_HANDLE hObject
  281. );
  282.  
  283. /*
  284.  * nssCKFWInstance_FindObjectHandle
  285.  *
  286.  */
  287. NSS_EXTERN CK_OBJECT_HANDLE
  288. nssCKFWInstance_FindObjectHandle
  289. (
  290.   NSSCKFWInstance *fwInstance,
  291.   NSSCKFWObject *fwObject
  292. );
  293.  
  294. /*
  295.  * nssCKFWInstance_GetNSlots
  296.  *
  297.  */
  298. NSS_EXTERN CK_ULONG
  299. nssCKFWInstance_GetNSlots
  300. (
  301.   NSSCKFWInstance *fwInstance,
  302.   CK_RV *pError
  303. );
  304.  
  305. /*
  306.  * nssCKFWInstance_GetCryptokiVersion
  307.  *
  308.  */
  309. NSS_EXTERN CK_VERSION
  310. nssCKFWInstance_GetCryptokiVersion
  311. (
  312.   NSSCKFWInstance *fwInstance
  313. );
  314.  
  315. /*
  316.  * nssCKFWInstance_GetManufacturerID
  317.  *
  318.  */
  319. NSS_EXTERN CK_RV
  320. nssCKFWInstance_GetManufacturerID
  321. (
  322.   NSSCKFWInstance *fwInstance,
  323.   CK_CHAR manufacturerID[32]
  324. );
  325.  
  326. /*
  327.  * nssCKFWInstance_GetFlags
  328.  *
  329.  */
  330. NSS_EXTERN CK_ULONG
  331. nssCKFWInstance_GetFlags
  332. (
  333.   NSSCKFWInstance *fwInstance
  334. );
  335.  
  336. /*
  337.  * nssCKFWInstance_GetLibraryDescription
  338.  *
  339.  */
  340. NSS_EXTERN CK_RV
  341. nssCKFWInstance_GetLibraryDescription
  342. (
  343.   NSSCKFWInstance *fwInstance,
  344.   CK_CHAR libraryDescription[32]
  345. );
  346.  
  347. /*
  348.  * nssCKFWInstance_GetLibraryVersion
  349.  *
  350.  */
  351. NSS_EXTERN CK_VERSION
  352. nssCKFWInstance_GetLibraryVersion
  353. (
  354.   NSSCKFWInstance *fwInstance
  355. );
  356.  
  357. /*
  358.  * nssCKFWInstance_GetModuleHandlesSessionObjects
  359.  *
  360.  */
  361. NSS_EXTERN CK_BBOOL
  362. nssCKFWInstance_GetModuleHandlesSessionObjects
  363. (
  364.   NSSCKFWInstance *fwInstance
  365. );
  366.  
  367. /*
  368.  * nssCKFWInstance_GetSlots
  369.  *
  370.  */
  371. NSS_EXTERN NSSCKFWSlot **
  372. nssCKFWInstance_GetSlots
  373. (
  374.   NSSCKFWInstance *fwInstance,
  375.   CK_RV *pError
  376. );
  377.  
  378. /*
  379.  * nssCKFWInstance_WaitForSlotEvent
  380.  *
  381.  */
  382. NSS_EXTERN NSSCKFWSlot *
  383. nssCKFWInstance_WaitForSlotEvent
  384. (
  385.   NSSCKFWInstance *fwInstance,
  386.   CK_BBOOL block,
  387.   CK_RV *pError
  388. );
  389.  
  390. /*
  391.  * nssCKFWInstance_verifyPointer
  392.  *
  393.  */
  394. NSS_EXTERN CK_RV
  395. nssCKFWInstance_verifyPointer
  396. (
  397.   const NSSCKFWInstance *fwInstance
  398. );
  399.  
  400.  
  401. /*
  402.  * NSSCKFWSlot
  403.  *
  404.  *  -- create/destroy --
  405.  *  nssCKFWSlot_Create
  406.  *  nssCKFWSlot_Destroy
  407.  *
  408.  *  -- implement public accessors --
  409.  *  nssCKFWSlot_GetMDSlot
  410.  *  nssCKFWSlot_GetFWInstance
  411.  *  nssCKFWSlot_GetMDInstance
  412.  *
  413.  *  -- private accessors --
  414.  *  nssCKFWSlot_GetSlotID
  415.  *
  416.  *  -- module fronts --
  417.  *  nssCKFWSlot_GetSlotDescription
  418.  *  nssCKFWSlot_GetManufacturerID
  419.  *  nssCKFWSlot_GetTokenPresent
  420.  *  nssCKFWSlot_GetRemovableDevice
  421.  *  nssCKFWSlot_GetHardwareSlot
  422.  *  nssCKFWSlot_GetHardwareVersion
  423.  *  nssCKFWSlot_GetFirmwareVersion
  424.  *  nssCKFWSlot_GetToken
  425.  */
  426.  
  427. /*
  428.  * nssCKFWSlot_Create
  429.  *
  430.  */
  431. NSS_EXTERN NSSCKFWSlot *
  432. nssCKFWSlot_Create
  433. (
  434.   NSSCKFWInstance *fwInstance,
  435.   NSSCKMDSlot *mdSlot,
  436.   CK_SLOT_ID slotID,
  437.   CK_RV *pError
  438. );
  439.  
  440. /*
  441.  * nssCKFWSlot_Destroy
  442.  *
  443.  */
  444. NSS_EXTERN CK_RV
  445. nssCKFWSlot_Destroy
  446. (
  447.   NSSCKFWSlot *fwSlot
  448. );
  449.  
  450. /*
  451.  * nssCKFWSlot_GetMDSlot
  452.  *
  453.  */
  454. NSS_EXTERN NSSCKMDSlot *
  455. nssCKFWSlot_GetMDSlot
  456. (
  457.   NSSCKFWSlot *fwSlot
  458. );
  459.  
  460. /*
  461.  * nssCKFWSlot_GetFWInstance
  462.  *
  463.  */
  464.  
  465. NSS_EXTERN NSSCKFWInstance *
  466. nssCKFWSlot_GetFWInstance
  467. (
  468.   NSSCKFWSlot *fwSlot
  469. );
  470.  
  471. /*
  472.  * nssCKFWSlot_GetMDInstance
  473.  *
  474.  */
  475.  
  476. NSS_EXTERN NSSCKMDInstance *
  477. nssCKFWSlot_GetMDInstance
  478. (
  479.   NSSCKFWSlot *fwSlot
  480. );
  481.  
  482. /*
  483.  * nssCKFWSlot_GetSlotID
  484.  *
  485.  */
  486. NSS_EXTERN CK_SLOT_ID
  487. nssCKFWSlot_GetSlotID
  488. (
  489.   NSSCKFWSlot *fwSlot
  490. );
  491.  
  492. /*
  493.  * nssCKFWSlot_GetSlotDescription
  494.  *
  495.  */
  496. NSS_EXTERN CK_RV
  497. nssCKFWSlot_GetSlotDescription
  498. (
  499.   NSSCKFWSlot *fwSlot,
  500.   CK_CHAR slotDescription[64]
  501. );
  502.  
  503. /*
  504.  * nssCKFWSlot_GetManufacturerID
  505.  *
  506.  */
  507. NSS_EXTERN CK_RV
  508. nssCKFWSlot_GetManufacturerID
  509. (
  510.   NSSCKFWSlot *fwSlot,
  511.   CK_CHAR manufacturerID[32]
  512. );
  513.  
  514. /*
  515.  * nssCKFWSlot_GetTokenPresent
  516.  *
  517.  */
  518. NSS_EXTERN CK_BBOOL
  519. nssCKFWSlot_GetTokenPresent
  520. (
  521.   NSSCKFWSlot *fwSlot
  522. );
  523.  
  524. /*
  525.  * nssCKFWSlot_GetRemovableDevice
  526.  *
  527.  */
  528. NSS_EXTERN CK_BBOOL
  529. nssCKFWSlot_GetRemovableDevice
  530. (
  531.   NSSCKFWSlot *fwSlot
  532. );
  533.  
  534. /*
  535.  * nssCKFWSlot_GetHardwareSlot
  536.  *
  537.  */
  538. NSS_EXTERN CK_BBOOL
  539. nssCKFWSlot_GetHardwareSlot
  540. (
  541.   NSSCKFWSlot *fwSlot
  542. );
  543.  
  544. /*
  545.  * nssCKFWSlot_GetHardwareVersion
  546.  *
  547.  */
  548. NSS_EXTERN CK_VERSION
  549. nssCKFWSlot_GetHardwareVersion
  550. (
  551.   NSSCKFWSlot *fwSlot
  552. );
  553.  
  554. /*
  555.  * nssCKFWSlot_GetFirmwareVersion
  556.  *
  557.  */
  558. NSS_EXTERN CK_VERSION
  559. nssCKFWSlot_GetFirmwareVersion
  560. (
  561.   NSSCKFWSlot *fwSlot
  562. );
  563.  
  564. /*
  565.  * nssCKFWSlot_GetToken
  566.  * 
  567.  */
  568. NSS_EXTERN NSSCKFWToken *
  569. nssCKFWSlot_GetToken
  570. (
  571.   NSSCKFWSlot *fwSlot,
  572.   CK_RV *pError
  573. );
  574.  
  575. /*
  576.  * nssCKFWSlot_ClearToken
  577.  *
  578.  */
  579. NSS_EXTERN void
  580. nssCKFWSlot_ClearToken
  581. (
  582.   NSSCKFWSlot *fwSlot
  583. );
  584.  
  585. /*
  586.  * NSSCKFWToken
  587.  *
  588.  *  -- create/destroy --
  589.  *  nssCKFWToken_Create
  590.  *  nssCKFWToken_Destroy
  591.  *
  592.  *  -- implement public accessors --
  593.  *  nssCKFWToken_GetMDToken
  594.  *  nssCKFWToken_GetFWSlot
  595.  *  nssCKFWToken_GetMDSlot
  596.  *  nssCKFWToken_GetSessionState
  597.  *
  598.  *  -- private accessors --
  599.  *  nssCKFWToken_SetSessionState
  600.  *  nssCKFWToken_RemoveSession
  601.  *  nssCKFWToken_CloseAllSessions
  602.  *  nssCKFWToken_GetSessionCount
  603.  *  nssCKFWToken_GetRwSessionCount
  604.  *  nssCKFWToken_GetRoSessionCount
  605.  *  nssCKFWToken_GetSessionObjectHash
  606.  *  nssCKFWToken_GetMDObjectHash
  607.  *  nssCKFWToken_GetObjectHandleHash
  608.  *
  609.  *  -- module fronts --
  610.  *  nssCKFWToken_InitToken
  611.  *  nssCKFWToken_GetLabel
  612.  *  nssCKFWToken_GetManufacturerID
  613.  *  nssCKFWToken_GetModel
  614.  *  nssCKFWToken_GetSerialNumber
  615.  *  nssCKFWToken_GetHasRNG
  616.  *  nssCKFWToken_GetIsWriteProtected
  617.  *  nssCKFWToken_GetLoginRequired
  618.  *  nssCKFWToken_GetUserPinInitialized
  619.  *  nssCKFWToken_GetRestoreKeyNotNeeded
  620.  *  nssCKFWToken_GetHasClockOnToken
  621.  *  nssCKFWToken_GetHasProtectedAuthenticationPath
  622.  *  nssCKFWToken_GetSupportsDualCryptoOperations
  623.  *  nssCKFWToken_GetMaxSessionCount
  624.  *  nssCKFWToken_GetMaxRwSessionCount
  625.  *  nssCKFWToken_GetMaxPinLen
  626.  *  nssCKFWToken_GetMinPinLen
  627.  *  nssCKFWToken_GetTotalPublicMemory
  628.  *  nssCKFWToken_GetFreePublicMemory
  629.  *  nssCKFWToken_GetTotalPrivateMemory
  630.  *  nssCKFWToken_GetFreePrivateMemory
  631.  *  nssCKFWToken_GetHardwareVersion
  632.  *  nssCKFWToken_GetFirmwareVersion
  633.  *  nssCKFWToken_GetUTCTime
  634.  *  nssCKFWToken_OpenSession
  635.  *  nssCKFWToken_GetMechanismCount
  636.  *  nssCKFWToken_GetMechanismTypes
  637.  *  nssCKFWToken_GetMechanism
  638.  */
  639.  
  640. /*
  641.  * nssCKFWToken_Create
  642.  *
  643.  */
  644. NSS_EXTERN NSSCKFWToken *
  645. nssCKFWToken_Create
  646. (
  647.   NSSCKFWSlot *fwSlot,
  648.   NSSCKMDToken *mdToken,
  649.   CK_RV *pError
  650. );
  651.  
  652. /*
  653.  * nssCKFWToken_Destroy
  654.  *
  655.  */
  656. NSS_EXTERN CK_RV
  657. nssCKFWToken_Destroy
  658. (
  659.   NSSCKFWToken *fwToken
  660. );
  661.  
  662. /*
  663.  * nssCKFWToken_GetMDToken
  664.  *
  665.  */
  666. NSS_EXTERN NSSCKMDToken *
  667. nssCKFWToken_GetMDToken
  668. (
  669.   NSSCKFWToken *fwToken
  670. );
  671.  
  672. /*
  673.  * nssCKFWToken_GetArena
  674.  *
  675.  */
  676. NSS_EXTERN NSSArena *
  677. nssCKFWToken_GetArena
  678. (
  679.   NSSCKFWToken *fwToken,
  680.   CK_RV *pError
  681. );
  682.  
  683. /*
  684.  * nssCKFWToken_GetFWSlot
  685.  *
  686.  */
  687. NSS_EXTERN NSSCKFWSlot *
  688. nssCKFWToken_GetFWSlot
  689. (
  690.   NSSCKFWToken *fwToken
  691. );
  692.  
  693. /*
  694.  * nssCKFWToken_GetMDSlot
  695.  *
  696.  */
  697. NSS_EXTERN NSSCKMDSlot *
  698. nssCKFWToken_GetMDSlot
  699. (
  700.   NSSCKFWToken *fwToken
  701. );
  702.  
  703. /*
  704.  * nssCKFWToken_GetSessionState
  705.  *
  706.  */
  707. NSS_EXTERN CK_STATE
  708. nssCKFWToken_GetSessionState
  709. (
  710.   NSSCKFWToken *fwToken
  711. );
  712.  
  713. /*
  714.  * nssCKFWToken_InitToken
  715.  *
  716.  */
  717. NSS_EXTERN CK_RV
  718. nssCKFWToken_InitToken
  719. (
  720.   NSSCKFWToken *fwToken,
  721.   NSSItem *pin,
  722.   NSSUTF8 *label
  723. );
  724.  
  725. /*
  726.  * nssCKFWToken_GetLabel
  727.  *
  728.  */
  729. NSS_EXTERN CK_RV
  730. nssCKFWToken_GetLabel
  731. (
  732.   NSSCKFWToken *fwToken,
  733.   CK_CHAR label[32]
  734. );
  735.  
  736. /*
  737.  * nssCKFWToken_GetManufacturerID
  738.  *
  739.  */
  740. NSS_EXTERN CK_RV
  741. nssCKFWToken_GetManufacturerID
  742. (
  743.   NSSCKFWToken *fwToken,
  744.   CK_CHAR manufacturerID[32]
  745. );
  746.  
  747. /*
  748.  * nssCKFWToken_GetModel
  749.  *
  750.  */
  751. NSS_EXTERN CK_RV
  752. nssCKFWToken_GetModel
  753. (
  754.   NSSCKFWToken *fwToken,
  755.   CK_CHAR model[16]
  756. );
  757.  
  758. /*
  759.  * nssCKFWToken_GetSerialNumber
  760.  *
  761.  */
  762. NSS_EXTERN CK_RV
  763. nssCKFWToken_GetSerialNumber
  764. (
  765.   NSSCKFWToken *fwToken,
  766.   CK_CHAR serialNumber[16]
  767. );
  768.  
  769. /*
  770.  * nssCKFWToken_GetHasRNG
  771.  *
  772.  */
  773. NSS_EXTERN CK_BBOOL
  774. nssCKFWToken_GetHasRNG
  775. (
  776.   NSSCKFWToken *fwToken
  777. );
  778.  
  779. /*
  780.  * nssCKFWToken_GetIsWriteProtected
  781.  *
  782.  */
  783. NSS_EXTERN CK_BBOOL
  784. nssCKFWToken_GetIsWriteProtected
  785. (
  786.   NSSCKFWToken *fwToken
  787. );
  788.  
  789. /*
  790.  * nssCKFWToken_GetLoginRequired
  791.  *
  792.  */
  793. NSS_EXTERN CK_BBOOL
  794. nssCKFWToken_GetLoginRequired
  795. (
  796.   NSSCKFWToken *fwToken
  797. );
  798.  
  799. /*
  800.  * nssCKFWToken_GetUserPinInitialized
  801.  *
  802.  */
  803. NSS_EXTERN CK_BBOOL
  804. nssCKFWToken_GetUserPinInitialized
  805. (
  806.   NSSCKFWToken *fwToken
  807. );
  808.  
  809. /*
  810.  * nssCKFWToken_GetRestoreKeyNotNeeded
  811.  *
  812.  */
  813. NSS_EXTERN CK_BBOOL
  814. nssCKFWToken_GetRestoreKeyNotNeeded
  815. (
  816.   NSSCKFWToken *fwToken
  817. );
  818.  
  819. /*
  820.  * nssCKFWToken_GetHasClockOnToken
  821.  *
  822.  */
  823. NSS_EXTERN CK_BBOOL
  824. nssCKFWToken_GetHasClockOnToken
  825. (
  826.   NSSCKFWToken *fwToken
  827. );
  828.  
  829. /*
  830.  * nssCKFWToken_GetHasProtectedAuthenticationPath
  831.  *
  832.  */
  833. NSS_EXTERN CK_BBOOL
  834. nssCKFWToken_GetHasProtectedAuthenticationPath
  835. (
  836.   NSSCKFWToken *fwToken
  837. );
  838.  
  839. /*
  840.  * nssCKFWToken_GetSupportsDualCryptoOperations
  841.  *
  842.  */
  843. NSS_EXTERN CK_BBOOL
  844. nssCKFWToken_GetSupportsDualCryptoOperations
  845. (
  846.   NSSCKFWToken *fwToken
  847. );
  848.  
  849. /*
  850.  * nssCKFWToken_GetMaxSessionCount
  851.  *
  852.  */
  853. NSS_EXTERN CK_ULONG
  854. nssCKFWToken_GetMaxSessionCount
  855. (
  856.   NSSCKFWToken *fwToken
  857. );
  858.  
  859. /*
  860.  * nssCKFWToken_GetMaxRwSessionCount
  861.  *
  862.  */
  863. NSS_EXTERN CK_ULONG
  864. nssCKFWToken_GetMaxRwSessionCount
  865. (
  866.   NSSCKFWToken *fwToken
  867. );
  868.  
  869. /*
  870.  * nssCKFWToken_GetMaxPinLen
  871.  *
  872.  */
  873. NSS_EXTERN CK_ULONG
  874. nssCKFWToken_GetMaxPinLen
  875. (
  876.   NSSCKFWToken *fwToken
  877. );
  878.  
  879. /*
  880.  * nssCKFWToken_GetMinPinLen
  881.  *
  882.  */
  883. NSS_EXTERN CK_ULONG
  884. nssCKFWToken_GetMinPinLen
  885. (
  886.   NSSCKFWToken *fwToken
  887. );
  888.  
  889. /*
  890.  * nssCKFWToken_GetTotalPublicMemory
  891.  *
  892.  */
  893. NSS_EXTERN CK_ULONG
  894. nssCKFWToken_GetTotalPublicMemory
  895. (
  896.   NSSCKFWToken *fwToken
  897. );
  898.  
  899. /*
  900.  * nssCKFWToken_GetFreePublicMemory
  901.  *
  902.  */
  903. NSS_EXTERN CK_ULONG
  904. nssCKFWToken_GetFreePublicMemory
  905. (
  906.   NSSCKFWToken *fwToken
  907. );
  908.  
  909. /*
  910.  * nssCKFWToken_GetTotalPrivateMemory
  911.  *
  912.  */
  913. NSS_EXTERN CK_ULONG
  914. nssCKFWToken_GetTotalPrivateMemory
  915. (
  916.   NSSCKFWToken *fwToken
  917. );
  918.  
  919. /*
  920.  * nssCKFWToken_GetFreePrivateMemory
  921.  *
  922.  */
  923. NSS_EXTERN CK_ULONG
  924. nssCKFWToken_GetFreePrivateMemory
  925. (
  926.   NSSCKFWToken *fwToken
  927. );
  928.  
  929. /*
  930.  * nssCKFWToken_GetHardwareVersion
  931.  *
  932.  */
  933. NSS_EXTERN CK_VERSION
  934. nssCKFWToken_GetHardwareVersion
  935. (
  936.   NSSCKFWToken *fwToken
  937. );
  938.  
  939. /*
  940.  * nssCKFWToken_GetFirmwareVersion
  941.  *
  942.  */
  943. NSS_EXTERN CK_VERSION
  944. nssCKFWToken_GetFirmwareVersion
  945. (
  946.   NSSCKFWToken *fwToken
  947. );
  948.  
  949. /*
  950.  * nssCKFWToken_GetUTCTime
  951.  *
  952.  */
  953. NSS_EXTERN CK_RV
  954. nssCKFWToken_GetUTCTime
  955. (
  956.   NSSCKFWToken *fwToken,
  957.   CK_CHAR utcTime[16]
  958. );
  959.  
  960. /*
  961.  * nssCKFWToken_OpenSession
  962.  *
  963.  */
  964. NSS_EXTERN NSSCKFWSession *
  965. nssCKFWToken_OpenSession
  966. (
  967.   NSSCKFWToken *fwToken,
  968.   CK_BBOOL rw,
  969.   CK_VOID_PTR pApplication,
  970.   CK_NOTIFY Notify,
  971.   CK_RV *pError
  972. );
  973.  
  974. /*
  975.  * nssCKFWToken_GetMechanismCount
  976.  *
  977.  */
  978. NSS_EXTERN CK_ULONG
  979. nssCKFWToken_GetMechanismCount
  980. (
  981.   NSSCKFWToken *fwToken
  982. );
  983.  
  984. /*
  985.  * nssCKFWToken_GetMechanismTypes
  986.  *
  987.  */
  988. NSS_EXTERN CK_RV
  989. nssCKFWToken_GetMechanismTypes
  990. (
  991.   NSSCKFWToken *fwToken,
  992.   CK_MECHANISM_TYPE types[]
  993. );
  994.  
  995. /*
  996.  * nssCKFWToken_GetMechanism
  997.  *
  998.  */
  999. NSS_EXTERN NSSCKFWMechanism *
  1000. nssCKFWToken_GetMechanism
  1001. (
  1002.   NSSCKFWToken *fwToken,
  1003.   CK_MECHANISM_TYPE which,
  1004.   CK_RV *pError
  1005. );
  1006.  
  1007. /*
  1008.  * nssCKFWToken_SetSessionState
  1009.  *
  1010.  */
  1011. NSS_EXTERN CK_RV
  1012. nssCKFWToken_SetSessionState
  1013. (
  1014.   NSSCKFWToken *fwToken,
  1015.   CK_STATE newState
  1016. );
  1017.  
  1018. /*
  1019.  * nssCKFWToken_RemoveSession
  1020.  *
  1021.  */
  1022. NSS_EXTERN CK_RV
  1023. nssCKFWToken_RemoveSession
  1024. (
  1025.   NSSCKFWToken *fwToken,
  1026.   NSSCKFWSession *fwSession
  1027. );
  1028.  
  1029. /*
  1030.  * nssCKFWToken_CloseAllSessions
  1031.  *
  1032.  */
  1033. NSS_EXTERN CK_RV
  1034. nssCKFWToken_CloseAllSessions
  1035. (
  1036.   NSSCKFWToken *fwToken
  1037. );
  1038.  
  1039. /*
  1040.  * nssCKFWToken_GetSessionCount
  1041.  *
  1042.  */
  1043. NSS_EXTERN CK_ULONG
  1044. nssCKFWToken_GetSessionCount
  1045. (
  1046.   NSSCKFWToken *fwToken
  1047. );
  1048.  
  1049. /*
  1050.  * nssCKFWToken_GetRwSessionCount
  1051.  *
  1052.  */
  1053. NSS_EXTERN CK_ULONG
  1054. nssCKFWToken_GetRwSessionCount
  1055. (
  1056.   NSSCKFWToken *fwToken
  1057. );
  1058.  
  1059. /*
  1060.  * nssCKFWToken_GetRoSessionCount
  1061.  *
  1062.  */
  1063. NSS_EXTERN CK_ULONG
  1064. nssCKFWToken_GetRoSessionCount
  1065. (
  1066.   NSSCKFWToken *fwToken
  1067. );
  1068.  
  1069. /*
  1070.  * nssCKFWToken_GetSessionObjectHash
  1071.  *
  1072.  */
  1073. NSS_EXTERN nssCKFWHash *
  1074. nssCKFWToken_GetSessionObjectHash
  1075. (
  1076.   NSSCKFWToken *fwToken
  1077. );
  1078.  
  1079. /*
  1080.  * nssCKFWToken_GetMDObjectHash
  1081.  *
  1082.  */
  1083. NSS_EXTERN nssCKFWHash *
  1084. nssCKFWToken_GetMDObjectHash
  1085. (
  1086.   NSSCKFWToken *fwToken
  1087. );
  1088.  
  1089. /*
  1090.  * nssCKFWToken_GetObjectHandleHash
  1091.  *
  1092.  */
  1093. NSS_EXTERN nssCKFWHash *
  1094. nssCKFWToken_GetObjectHandleHash
  1095. (
  1096.   NSSCKFWToken *fwToken
  1097. );
  1098.  
  1099. /*
  1100.  * NSSCKFWMechanism
  1101.  *
  1102.  *  -- create/destroy --
  1103.  *  nssCKFWMechanism_Create
  1104.  *  nssCKFWMechanism_Destroy
  1105.  *
  1106.  *  -- implement public accessors --
  1107.  *  nssCKFWMechanism_GetMDMechanism
  1108.  *  nssCKFWMechanism_GetParameter
  1109.  *
  1110.  *  -- private accessors --
  1111.  *
  1112.  *  -- module fronts --
  1113.  *  nssCKFWMechanism_GetMinKeySize
  1114.  *  nssCKFWMechanism_GetMaxKeySize
  1115.  *  nssCKFWMechanism_GetInHardware
  1116.  */
  1117.  
  1118. /*
  1119.  * nssCKFWMechanism_Create
  1120.  *
  1121.  */
  1122. NSS_EXTERN NSSCKFWMechanism *
  1123. nssCKFWMechanism_Create
  1124. (
  1125.   void /* XXX fgmr */
  1126. );
  1127.  
  1128. /*
  1129.  * nssCKFWMechanism_Destroy
  1130.  *
  1131.  */
  1132. NSS_EXTERN CK_RV
  1133. nssCKFWMechanism_Destroy
  1134. (
  1135.   NSSCKFWMechanism *fwMechanism
  1136. );
  1137.  
  1138. /*
  1139.  * nssCKFWMechanism_GetMDMechanism
  1140.  *
  1141.  */
  1142.  
  1143. NSS_EXTERN NSSCKMDMechanism *
  1144. nssCKFWMechanism_GetMDMechanism
  1145. (
  1146.   NSSCKFWMechanism *fwMechanism
  1147. );
  1148.  
  1149. /*
  1150.  * nssCKFWMechanism_GetParameter
  1151.  *
  1152.  * XXX fgmr-- or as an additional parameter to the crypto ops?
  1153.  */
  1154. NSS_EXTERN NSSItem *
  1155. nssCKFWMechanism_GetParameter
  1156. (
  1157.   NSSCKFWMechanism *fwMechanism
  1158. );
  1159.  
  1160. /*
  1161.  * nssCKFWMechanism_GetMinKeySize
  1162.  *
  1163.  */
  1164. NSS_EXTERN CK_ULONG
  1165. nssCKFWMechanism_GetMinKeySize
  1166. (
  1167.   NSSCKFWMechanism *fwMechanism
  1168. );
  1169.  
  1170. /*
  1171.  * nssCKFWMechanism_GetMaxKeySize
  1172.  *
  1173.  */
  1174. NSS_EXTERN CK_ULONG
  1175. nssCKFWMechanism_GetMaxKeySize
  1176. (
  1177.   NSSCKFWMechanism *fwMechanism
  1178. );
  1179.  
  1180. /*
  1181.  * nssCKFWMechanism_GetInHardware
  1182.  *
  1183.  */
  1184. NSS_EXTERN CK_BBOOL
  1185. nssCKFWMechanism_GetInHardware
  1186. (
  1187.   NSSCKFWMechanism *fwMechanism
  1188. );
  1189.  
  1190. /*
  1191.  * NSSCKFWSession
  1192.  *
  1193.  *  -- create/destroy --
  1194.  *  nssCKFWSession_Create
  1195.  *  nssCKFWSession_Destroy
  1196.  *
  1197.  *  -- implement public accessors --
  1198.  *  nssCKFWSession_GetMDSession
  1199.  *  nssCKFWSession_GetArena
  1200.  *  nssCKFWSession_CallNotification
  1201.  *  nssCKFWSession_IsRWSession
  1202.  *  nssCKFWSession_IsSO
  1203.  *
  1204.  *  -- private accessors --
  1205.  *  nssCKFWSession_GetFWSlot
  1206.  *  nssCKFWSession_GetSessionState
  1207.  *  nssCKFWSession_SetFWFindObjects
  1208.  *  nssCKFWSession_GetFWFindObjects
  1209.  *  nssCKFWSession_SetMDSession
  1210.  *  nssCKFWSession_SetHandle
  1211.  *  nssCKFWSession_GetHandle
  1212.  *  nssCKFWSession_RegisterSessionObject
  1213.  *  nssCKFWSession_DeregisterSessionObject
  1214.  *
  1215.  *  -- module fronts --
  1216.  *  nssCKFWSession_GetDeviceError
  1217.  *  nssCKFWSession_Login
  1218.  *  nssCKFWSession_Logout
  1219.  *  nssCKFWSession_InitPIN
  1220.  *  nssCKFWSession_SetPIN
  1221.  *  nssCKFWSession_GetOperationStateLen
  1222.  *  nssCKFWSession_GetOperationState
  1223.  *  nssCKFWSession_SetOperationState
  1224.  *  nssCKFWSession_CreateObject
  1225.  *  nssCKFWSession_CopyObject
  1226.  *  nssCKFWSession_FindObjectsInit
  1227.  *  nssCKFWSession_SeedRandom
  1228.  *  nssCKFWSession_GetRandom
  1229.  */
  1230.  
  1231. /*
  1232.  * nssCKFWSession_Create
  1233.  *
  1234.  */
  1235. NSS_EXTERN NSSCKFWSession *
  1236. nssCKFWSession_Create
  1237. (
  1238.   NSSCKFWToken *fwToken,
  1239.   CK_BBOOL rw,
  1240.   CK_VOID_PTR pApplication,
  1241.   CK_NOTIFY Notify,
  1242.   CK_RV *pError
  1243. );
  1244.  
  1245. /*
  1246.  * nssCKFWSession_Destroy
  1247.  *
  1248.  */
  1249. NSS_EXTERN CK_RV
  1250. nssCKFWSession_Destroy
  1251. (
  1252.   NSSCKFWSession *fwSession,
  1253.   CK_BBOOL removeFromTokenHash
  1254. );
  1255.  
  1256. /*
  1257.  * nssCKFWSession_GetMDSession
  1258.  *
  1259.  */
  1260. NSS_EXTERN NSSCKMDSession *
  1261. nssCKFWSession_GetMDSession
  1262. (
  1263.   NSSCKFWSession *fwSession
  1264. );
  1265.  
  1266. /*
  1267.  * nssCKFWSession_GetArena
  1268.  *
  1269.  */
  1270. NSS_EXTERN NSSArena *
  1271. nssCKFWSession_GetArena
  1272. (
  1273.   NSSCKFWSession *fwSession,
  1274.   CK_RV *pError
  1275. );
  1276.  
  1277. /*
  1278.  * nssCKFWSession_CallNotification
  1279.  *
  1280.  */
  1281. NSS_EXTERN CK_RV
  1282. nssCKFWSession_CallNotification
  1283. (
  1284.   NSSCKFWSession *fwSession,
  1285.   CK_NOTIFICATION event
  1286. );
  1287.  
  1288. /*
  1289.  * nssCKFWSession_IsRWSession
  1290.  *
  1291.  */
  1292. NSS_EXTERN CK_BBOOL
  1293. nssCKFWSession_IsRWSession
  1294. (
  1295.   NSSCKFWSession *fwSession
  1296. );
  1297.  
  1298. /*
  1299.  * nssCKFWSession_IsSO
  1300.  *
  1301.  */
  1302. NSS_EXTERN CK_BBOOL
  1303. nssCKFWSession_IsSO
  1304. (
  1305.   NSSCKFWSession *fwSession
  1306. );
  1307.  
  1308. /*
  1309.  * nssCKFWSession_GetFWSlot
  1310.  *
  1311.  */
  1312. NSS_EXTERN NSSCKFWSlot *
  1313. nssCKFWSession_GetFWSlot
  1314. (
  1315.   NSSCKFWSession *fwSession
  1316. );
  1317.  
  1318. /*
  1319.  * nssCFKWSession_GetSessionState
  1320.  *
  1321.  */
  1322. NSS_EXTERN CK_STATE
  1323. nssCKFWSession_GetSessionState
  1324. (
  1325.   NSSCKFWSession *fwSession
  1326. );
  1327.  
  1328. /*
  1329.  * nssCKFWSession_SetFWFindObjects
  1330.  *
  1331.  */
  1332. NSS_EXTERN CK_RV
  1333. nssCKFWSession_SetFWFindObjects
  1334. (
  1335.   NSSCKFWSession *fwSession,
  1336.   NSSCKFWFindObjects *fwFindObjects
  1337. );
  1338.  
  1339. /*
  1340.  * nssCKFWSession_GetFWFindObjects
  1341.  *
  1342.  */
  1343. NSS_EXTERN NSSCKFWFindObjects *
  1344. nssCKFWSession_GetFWFindObjects
  1345. (
  1346.   NSSCKFWSession *fwSesssion,
  1347.   CK_RV *pError
  1348. );
  1349.  
  1350. /*
  1351.  * nssCKFWSession_SetMDSession
  1352.  *
  1353.  */
  1354. NSS_EXTERN CK_RV
  1355. nssCKFWSession_SetMDSession
  1356. (
  1357.   NSSCKFWSession *fwSession,
  1358.   NSSCKMDSession *mdSession
  1359. );
  1360.  
  1361. /*
  1362.  * nssCKFWSession_SetHandle
  1363.  *
  1364.  */
  1365. NSS_EXTERN CK_RV
  1366. nssCKFWSession_SetHandle
  1367. (
  1368.   NSSCKFWSession *fwSession,
  1369.   CK_SESSION_HANDLE hSession
  1370. );
  1371.  
  1372. /*
  1373.  * nssCKFWSession_GetHandle
  1374.  *
  1375.  */
  1376. NSS_EXTERN CK_SESSION_HANDLE
  1377. nssCKFWSession_GetHandle
  1378. (
  1379.   NSSCKFWSession *fwSession
  1380. );
  1381.  
  1382. /*
  1383.  * nssCKFWSession_RegisterSessionObject
  1384.  *
  1385.  */
  1386. NSS_EXTERN CK_RV
  1387. nssCKFWSession_RegisterSessionObject
  1388. (
  1389.   NSSCKFWSession *fwSession,
  1390.   NSSCKFWObject *fwObject
  1391. );
  1392.  
  1393. /*
  1394.  * nssCKFWSession_DeregisterSessionObject
  1395.  *
  1396.  */
  1397. NSS_EXTERN CK_RV
  1398. nssCKFWSession_DeregisterSessionObject
  1399. (
  1400.   NSSCKFWSession *fwSession,
  1401.   NSSCKFWObject *fwObject
  1402. );
  1403.  
  1404. /*
  1405.  * nssCKFWSession_GetDeviceError
  1406.  *
  1407.  */
  1408. NSS_EXTERN CK_ULONG
  1409. nssCKFWSession_GetDeviceError
  1410. (
  1411.   NSSCKFWSession *fwSession
  1412. );
  1413.  
  1414. /*
  1415.  * nssCKFWSession_Login
  1416.  *
  1417.  */
  1418. NSS_EXTERN CK_RV
  1419. nssCKFWSession_Login
  1420. (
  1421.   NSSCKFWSession *fwSession,
  1422.   CK_USER_TYPE userType,
  1423.   NSSItem *pin
  1424. );
  1425.  
  1426. /*
  1427.  * nssCKFWSession_Logout
  1428.  *
  1429.  */
  1430. NSS_EXTERN CK_RV
  1431. nssCKFWSession_Logout
  1432. (
  1433.   NSSCKFWSession *fwSession
  1434. );
  1435.  
  1436. /*
  1437.  * nssCKFWSession_InitPIN
  1438.  *
  1439.  */
  1440. NSS_EXTERN CK_RV
  1441. nssCKFWSession_InitPIN
  1442. (
  1443.   NSSCKFWSession *fwSession,
  1444.   NSSItem *pin
  1445. );
  1446.  
  1447. /*
  1448.  * nssCKFWSession_SetPIN
  1449.  *
  1450.  */
  1451. NSS_EXTERN CK_RV
  1452. nssCKFWSession_SetPIN
  1453. (
  1454.   NSSCKFWSession *fwSession,
  1455.   NSSItem *newPin,
  1456.   NSSItem *oldPin
  1457. );
  1458.  
  1459. /*
  1460.  * nssCKFWSession_GetOperationStateLen
  1461.  *
  1462.  */
  1463. NSS_EXTERN CK_ULONG
  1464. nssCKFWSession_GetOperationStateLen
  1465. (
  1466.   NSSCKFWSession *fwSession,
  1467.   CK_RV *pError
  1468. );
  1469.  
  1470. /*
  1471.  * nssCKFWSession_GetOperationState
  1472.  *
  1473.  */
  1474. NSS_EXTERN CK_RV
  1475. nssCKFWSession_GetOperationState
  1476. (
  1477.   NSSCKFWSession *fwSession,
  1478.   NSSItem *buffer
  1479. );
  1480.  
  1481. /*
  1482.  * nssCKFWSession_SetOperationState
  1483.  *
  1484.  */
  1485. NSS_EXTERN CK_RV
  1486. nssCKFWSession_SetOperationState
  1487. (
  1488.   NSSCKFWSession *fwSession,
  1489.   NSSItem *state,
  1490.   NSSCKFWObject *encryptionKey,
  1491.   NSSCKFWObject *authenticationKey
  1492. );
  1493.  
  1494. /*
  1495.  * nssCKFWSession_CreateObject
  1496.  *
  1497.  */
  1498. NSS_EXTERN NSSCKFWObject *
  1499. nssCKFWSession_CreateObject
  1500. (
  1501.   NSSCKFWSession *fwSession,
  1502.   CK_ATTRIBUTE_PTR pTemplate,
  1503.   CK_ULONG ulAttributeCount,
  1504.   CK_RV *pError
  1505. );
  1506.  
  1507. /*
  1508.  * nssCKFWSession_CopyObject
  1509.  *
  1510.  */
  1511. NSS_EXTERN NSSCKFWObject *
  1512. nssCKFWSession_CopyObject
  1513. (
  1514.   NSSCKFWSession *fwSession,
  1515.   NSSCKFWObject *object,
  1516.   CK_ATTRIBUTE_PTR pTemplate,
  1517.   CK_ULONG ulAttributeCount,
  1518.   CK_RV *pError
  1519. );
  1520.  
  1521. /*
  1522.  * nssCKFWSession_FindObjectsInit
  1523.  *
  1524.  */
  1525. NSS_EXTERN NSSCKFWFindObjects *
  1526. nssCKFWSession_FindObjectsInit
  1527. (
  1528.   NSSCKFWSession *fwSession,
  1529.   CK_ATTRIBUTE_PTR pTemplate,
  1530.   CK_ULONG ulAttributeCount,
  1531.   CK_RV *pError
  1532. );
  1533.  
  1534. /*
  1535.  * nssCKFWSession_SeedRandom
  1536.  *
  1537.  */
  1538. NSS_EXTERN CK_RV
  1539. nssCKFWSession_SeedRandom
  1540. (
  1541.   NSSCKFWSession *fwSession,
  1542.   NSSItem *seed
  1543. );
  1544.  
  1545. /*
  1546.  * nssCKFWSession_GetRandom
  1547.  *
  1548.  */
  1549. NSS_EXTERN CK_RV
  1550. nssCKFWSession_GetRandom
  1551. (
  1552.   NSSCKFWSession *fwSession,
  1553.   NSSItem *buffer
  1554. );
  1555.  
  1556. /*
  1557.  * NSSCKFWObject
  1558.  *
  1559.  * -- create/destroy --
  1560.  *  nssCKFWObject_Create
  1561.  *  nssCKFWObject_Finalize
  1562.  *  nssCKFWObject_Destroy
  1563.  *
  1564.  * -- implement public accessors --
  1565.  *  nssCKFWObject_GetMDObject
  1566.  *  nssCKFWObject_GetArena
  1567.  *
  1568.  * -- private accessors --
  1569.  *  nssCKFWObject_SetHandle
  1570.  *  nssCKFWObject_GetHandle
  1571.  *
  1572.  * -- module fronts --
  1573.  *  nssCKFWObject_IsTokenObject
  1574.  *  nssCKFWObject_GetAttributeCount
  1575.  *  nssCKFWObject_GetAttributeTypes
  1576.  *  nssCKFWObject_GetAttributeSize
  1577.  *  nssCKFWObject_GetAttribute
  1578.  *  nssCKFWObject_SetAttribute
  1579.  *  nssCKFWObject_GetObjectSize
  1580.  */
  1581.  
  1582. /*
  1583.  * nssCKFWObject_Create
  1584.  *
  1585.  */
  1586. NSS_EXTERN NSSCKFWObject *
  1587. nssCKFWObject_Create
  1588. (
  1589.   NSSArena *arena,
  1590.   NSSCKMDObject *mdObject,
  1591.   NSSCKFWSession *fwSession,
  1592.   NSSCKFWToken *fwToken,
  1593.   NSSCKFWInstance *fwInstance,
  1594.   CK_RV *pError
  1595. );
  1596.  
  1597. /*
  1598.  * nssCKFWObject_Finalize
  1599.  *
  1600.  */
  1601. NSS_EXTERN void
  1602. nssCKFWObject_Finalize
  1603. (
  1604.   NSSCKFWObject *fwObject
  1605. );
  1606.  
  1607. /*
  1608.  * nssCKFWObject_Destroy
  1609.  *
  1610.  */
  1611. NSS_EXTERN void
  1612. nssCKFWObject_Destroy
  1613. (
  1614.   NSSCKFWObject *fwObject
  1615. );
  1616.  
  1617. /*
  1618.  * nssCKFWObject_GetMDObject
  1619.  *
  1620.  */
  1621. NSS_EXTERN NSSCKMDObject *
  1622. nssCKFWObject_GetMDObject
  1623. (
  1624.   NSSCKFWObject *fwObject
  1625. );
  1626.  
  1627. /*
  1628.  * nssCKFWObject_GetArena
  1629.  *
  1630.  */
  1631. NSS_EXTERN NSSArena *
  1632. nssCKFWObject_GetArena
  1633. (
  1634.   NSSCKFWObject *fwObject,
  1635.   CK_RV *pError
  1636. );
  1637.  
  1638. /*
  1639.  * nssCKFWObject_SetHandle
  1640.  *
  1641.  */
  1642. NSS_EXTERN CK_RV
  1643. nssCKFWObject_SetHandle
  1644. (
  1645.   NSSCKFWObject *fwObject,
  1646.   CK_OBJECT_HANDLE hObject
  1647. );
  1648.  
  1649. /*
  1650.  * nssCKFWObject_GetHandle
  1651.  *
  1652.  */
  1653. NSS_EXTERN CK_OBJECT_HANDLE
  1654. nssCKFWObject_GetHandle
  1655. (
  1656.   NSSCKFWObject *fwObject
  1657. );
  1658.  
  1659. /*
  1660.  * nssCKFWObject_IsTokenObject
  1661.  *
  1662.  */
  1663. NSS_EXTERN CK_BBOOL
  1664. nssCKFWObject_IsTokenObject
  1665. (
  1666.   NSSCKFWObject *fwObject
  1667. );
  1668.  
  1669. /*
  1670.  * nssCKFWObject_GetAttributeCount
  1671.  *
  1672.  */
  1673. NSS_EXTERN CK_ULONG
  1674. nssCKFWObject_GetAttributeCount
  1675. (
  1676.   NSSCKFWObject *fwObject,
  1677.   CK_RV *pError
  1678. );
  1679.  
  1680. /*
  1681.  * nssCKFWObject_GetAttributeTypes
  1682.  *
  1683.  */
  1684. NSS_EXTERN CK_RV
  1685. nssCKFWObject_GetAttributeTypes
  1686. (
  1687.   NSSCKFWObject *fwObject,
  1688.   CK_ATTRIBUTE_TYPE_PTR typeArray,
  1689.   CK_ULONG ulCount
  1690. );
  1691.  
  1692. /*
  1693.  * nssCKFWObject_GetAttributeSize
  1694.  *
  1695.  */
  1696. NSS_EXTERN CK_ULONG
  1697. nssCKFWObject_GetAttributeSize
  1698. (
  1699.   NSSCKFWObject *fwObject,
  1700.   CK_ATTRIBUTE_TYPE attribute,
  1701.   CK_RV *pError
  1702. );
  1703.  
  1704. /*
  1705.  * nssCKFWObject_GetAttribute
  1706.  *
  1707.  * Usual NSS allocation rules:
  1708.  * If itemOpt is not NULL, it will be returned; otherwise an NSSItem
  1709.  * will be allocated.  If itemOpt is not NULL but itemOpt->data is,
  1710.  * the buffer will be allocated; otherwise, the buffer will be used.
  1711.  * Any allocations will come from the optional arena, if one is
  1712.  * specified.
  1713.  */
  1714. NSS_EXTERN NSSItem *
  1715. nssCKFWObject_GetAttribute
  1716. (
  1717.   NSSCKFWObject *fwObject,
  1718.   CK_ATTRIBUTE_TYPE attribute,
  1719.   NSSItem *itemOpt,
  1720.   NSSArena *arenaOpt,
  1721.   CK_RV *pError
  1722. );
  1723.  
  1724. /*
  1725.  * nssCKFWObject_SetAttribute
  1726.  *
  1727.  */
  1728. NSS_EXTERN CK_RV
  1729. nssCKFWObject_SetAttribute
  1730. (
  1731.   NSSCKFWObject *fwObject,
  1732.   CK_ATTRIBUTE_TYPE attribute,
  1733.   NSSItem *value
  1734. );
  1735.  
  1736. /*
  1737.  * nssCKFWObject_GetObjectSize
  1738.  *
  1739.  */
  1740. NSS_EXTERN CK_ULONG
  1741. nssCKFWObject_GetObjectSize
  1742. (
  1743.   NSSCKFWObject *fwObject,
  1744.   CK_RV *pError
  1745. );
  1746.  
  1747. /*
  1748.  * NSSCKFWFindObjects
  1749.  *
  1750.  *  -- create/destroy --
  1751.  *  nssCKFWFindObjects_Create
  1752.  *  nssCKFWFindObjects_Destroy
  1753.  *
  1754.  *  -- implement public accessors --
  1755.  *  nssCKFWFindObjects_GetMDFindObjects
  1756.  *
  1757.  *  -- private accessors --
  1758.  *
  1759.  *  -- module fronts --
  1760.  *  nssCKFWFindObjects_Next
  1761.  */
  1762.  
  1763. /*
  1764.  * nssCKFWFindObjects_Create
  1765.  *
  1766.  */
  1767. NSS_EXTERN NSSCKFWFindObjects *
  1768. nssCKFWFindObjects_Create
  1769. (
  1770.   NSSCKFWSession *fwSession,
  1771.   NSSCKFWToken *fwToken,
  1772.   NSSCKFWInstance *fwInstance,
  1773.   NSSCKMDFindObjects *mdFindObjects1,
  1774.   NSSCKMDFindObjects *mdFindObjects2,
  1775.   CK_RV *pError
  1776. );
  1777.  
  1778. /*
  1779.  * nssCKFWFindObjects_Destroy
  1780.  *
  1781.  */
  1782. NSS_EXTERN void
  1783. nssCKFWFindObjects_Destroy
  1784. (
  1785.   NSSCKFWFindObjects *fwFindObjects
  1786. );
  1787.  
  1788. /*
  1789.  * nssCKFWFindObjects_GetMDFindObjects
  1790.  *
  1791.  */
  1792. NSS_EXTERN NSSCKMDFindObjects *
  1793. nssCKFWFindObjects_GetMDFindObjects
  1794. (
  1795.   NSSCKFWFindObjects *fwFindObjects
  1796. );
  1797.  
  1798. /*
  1799.  * nssCKFWFindObjects_Next
  1800.  *
  1801.  */
  1802. NSS_EXTERN NSSCKFWObject *
  1803. nssCKFWFindObjects_Next
  1804. (
  1805.   NSSCKFWFindObjects *fwFindObjects,
  1806.   NSSArena *arenaOpt,
  1807.   CK_RV *pError
  1808. );
  1809.  
  1810. /*
  1811.  * NSSCKFWMutex
  1812.  *
  1813.  *  nssCKFWMutex_Create
  1814.  *  nssCKFWMutex_Destroy
  1815.  *  nssCKFWMutex_Lock
  1816.  *  nssCKFWMutex_Unlock
  1817.  *
  1818.  */
  1819.  
  1820. /*
  1821.  * nssCKFWMutex_Create
  1822.  *
  1823.  */
  1824. NSS_EXTERN NSSCKFWMutex *
  1825. nssCKFWMutex_Create
  1826. (
  1827.   CK_C_INITIALIZE_ARGS_PTR pInitArgs,
  1828.   CryptokiLockingState LockingState,
  1829.   NSSArena *arena,
  1830.   CK_RV *pError
  1831. );
  1832.  
  1833. /*
  1834.  * nssCKFWMutex_Destroy
  1835.  *
  1836.  */
  1837. NSS_EXTERN CK_RV
  1838. nssCKFWMutex_Destroy
  1839. (
  1840.   NSSCKFWMutex *mutex
  1841. );
  1842.  
  1843. /*
  1844.  * nssCKFWMutex_Lock
  1845.  *
  1846.  */
  1847. NSS_EXTERN CK_RV
  1848. nssCKFWMutex_Lock
  1849. (
  1850.   NSSCKFWMutex *mutex
  1851. );
  1852.  
  1853. /*
  1854.  * nssCKFWMutex_Unlock
  1855.  *
  1856.  */
  1857. NSS_EXTERN CK_RV
  1858. nssCKFWMutex_Unlock
  1859. (
  1860.   NSSCKFWMutex *mutex
  1861. );
  1862.  
  1863. #endif /* CKFW_H */
  1864.